package com.aistar.line.service;


import com.aistar.line.entity.Collect;
import com.aistar.line.entity.Line;
import com.aistar.line.entity.Linespots;
import com.aistar.line.vo.LineSpotHotel;
import com.aistar.line.vo.Reserve;
import com.aistar.line.vo.Screen;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Description: java类作用描述:
 * @Author: tyg
 * @CreateDate: 2019/6/23 0023
 * @Version: 1.0
 */
public interface ILineService {

    /**
     * 根据条件筛选查询
     * @param screen
     * @return
     */
    PageInfo<LineSpotHotel> getPageInfo(Screen screen);

    /**
     * 添加一个路线信息
     *
     * @param line
     */
    void save(Line line);

    /**
     * 根据id删除路线信息
     *
     * @param line
     */
    void delById(Line line);

    /**
     * 更新一个路线信息
     *
     * @param line
     */
    void update(Line line);

    /**
     * 更新路线中的景点
     * @param spots
     */
    void updatespot(List<Linespots> spots);

    /**
     * 根据id查询该路线详细信息
     * @param line
     * @return
     */
    LineSpotHotel findById(Line line);

    /**
     * 查询销量排名前3的旅游产品信息
     * @param line
     * @return
     */
    List<LineSpotHotel> rankingBySuccess(Line line);

    /**
     * 判断用户与路线之间的收藏功能
     * @param collect
     * @return
     */
    boolean collect(Collect collect);

    /**
     * 添加收藏
     * @param collect
     * @return
     */
    boolean addCollect(Collect collect);

    /**
     * 取消收藏
     * @param collect
     * @return
     */
    boolean delCollect(Collect collect);

    /**
     * 客户预定信息存储
     * @param reserve
     * @return
     */
    boolean addReserve(Reserve reserve);

    /**
     * 客户预定信息删除
     * @param reserve
     * @return
     */
    boolean delReserve(Reserve reserve);
}
